package com.followmeandroid.messages;

/**
 * <p>Title: UpdateInfoRequest</p>
 * <p>Description: Container class for storing
 * update info requests for the server.</p>
 * @author Adam Drews
 * @email adam.drews@my.uwrf.edu
 * @date 11/17/2014
 * @team Tyler Johnson
 * @email tyler.johnson@my.uwrf.edu
 * @team Nicholas Thorp
 * @email nicholas.thorp@my.uwrf.edu
 */
public class UpdateInfoRequest extends ARequestBase {
    private String email;

    private String lastName;

    private String firstName;

    private String middleInitial;

    private boolean willShareLocation;

    /**
     * Default constructor.
     */
    public UpdateInfoRequest(){
        super();
    }

    /**
     * Constructor for an update info request.
     * @param email                 Email of the user to be updated.
     * @param lastName              Last name of the user to be updated.
     * @param firstName             First name of the user to be updated.
     * @param middleInitial         Middle initial of the user to be updated.
     * @param willShareLocation     True/False to sharing user's location.
     */
    public UpdateInfoRequest(String email, String lastName, String firstName, String middleInitial, boolean willShareLocation) {
        this.email = email;
        this.lastName = lastName;
        this.firstName = firstName;
        this.middleInitial = middleInitial;
        this.willShareLocation = willShareLocation;
    }

    /**
     * Returns the email address of the user for this request.
     * @return email        The user's email address.
     */
    public String getEmail() {
        return email;
    }

    /**
     * Sets the email address field of the user for this request.
     * @param email         The user's email address.
     */
    public void setEmail(String email) {
        this.email = email;
    }

    /**
     * Returns the last name of the user for this request.
     * @return lastName     The user's last name.
     */
    public String getLastName() {
        return lastName;
    }

    /**
     * Sets the last name of the user for this request.
     * @param lastName      The user's last name.
     */
    public void setLastName(String lastName) {
        this.lastName = lastName;
    }

    /**
     * Returns the first name of the user for this request.
     * @return firstName    The user's first name.
     */
    public String getFirstName() {
        return firstName;
    }

    /**
     * Sets the first name of the user for this request.
     * @param firstName     The user's first name.
     */
    public void setFirstName(String firstName) {
        this.firstName = firstName;
    }

    /**
     * Returns the middle initial of the user for this request.
     * @return middleInitial    The user's middle initial.
     */
    public String getMiddleInitial() {
        return middleInitial;
    }

    /**
     * Sets the middle initial of the user for this request.
     * @param middleInitial     The user's middle initial.
     */
    public void setMiddleInitial(String middleInitial) {
        this.middleInitial = middleInitial;
    }

    /**
     * Returns the status of the willShareLocation boolean for this request.
     * @return willShareLocation    True/False to sharing user's location.
     */
    public boolean isWillShareLocation() {
        return willShareLocation;
    }

    /**
     * Sets the boolean determining location sharing of the
     * user for this request.
     * @param willShareLocation     True/False to sharing user's location.
     */
    public void setWillShareLocation(boolean willShareLocation) {
        this.willShareLocation = willShareLocation;
    }
}
